Conventional display devices (e.g., Cathode Ray Tube (CRT), Liquid Crystal Displays (LCD), Light Emitting Diode (LED), Organic LED (OLED), Active-Matrix OLED (AMOLED), etc.) operate at fixed refresh rates such as 60 Hz, 85 Hz, or 120 Hz. In other words, the display device is configured to refresh each of the pixels of the screen at a specific frequency. In conventional systems, the video signal transmitted to the display device must match the fixed frequency of the display device's refresh rate. Some display devices enable the fixed frequency refresh rate to be changed based on a configuration setting of the display device, but once that setting is changed each frame received by the display device is drawn to the screen at that fixed frequency. However, a graphics processing unit (GPU) may generate frames of pixel data at a variable rendering rate that is asynchronous with the fixed refresh rate of the display device.
For example, when a display device is operating at 60 Hz, the pixels of the display will be refreshed every 16.6 ms. However, each frame may take a variable amount of time to be rendered by the GPU so while one frame may take 12 ms to render, another frame with more complicated geometry may take 30 ms to render. Thus, completely rendered frames may not be ready in the frame buffer when the next frame needs to be output to the display device via a video interface. In such situations, the GPU may be configured to repeatedly output the previous frame on the video interface until the next frame is ready. This situation can cause image artifacts that a viewer may perceive as choppy video. For example, image tearing may occur if the image being output to the display device is switched part way through the frame (V-SYNC Off). Conversely, image stuttering may occur if the image being output to the display device is only switched between frames, thereby causing some frames to be repeated and/or causing some frames to be skipped (V-SYNC On).
Newer display devices may be configured to operate synchronously with the GPU utilizing a dynamic refresh rate. For example, some monitors may be compatible with NVIDIA's G-SYNC™ technology that enables the display device to synchronize the refresh of pixel elements for displaying a frame with the variable rendering rate of the GPU. The GPU is configured to transmit frames of pixel data to the display device via the video interface as the frames are rendered, and the display device is configured to refresh the pixels of the display device in response to receiving the frames of pixel data rather than at a fixed frequency refresh rate. In other words, the refresh rate of the display device is not fixed at a particular frequency, but instead adjusts dynamically to the rate image data is received from the GPU.
As long as the GPU renders frames of image data at a reasonably fast rendering rate, the types of image artifacts associated with conventional systems may be reduced. However, in some cases, the GPU may have trouble rendering particular frames in a reasonable amount of time due to the complexity of a scene. For example, a particular frame of pixel data may take, e.g., 100 ms to be rendered, which corresponds to a dynamic refresh rate of 10 Hz for that particular frame. The effective refresh rate of the monitor when there are large delays between successive frames may cause other types of image artifacts to begin to appear. For example, applying temporal dithering at low refresh rates may cause a portion of an image to appear to shimmer.
Each pixel element in an LCD monitor may be capable of displaying colors associated with values having 8-bits of depth (i.e., the pixel can display 256 different levels of each color component of the pixel). However, the pixel may effectively display additional colors associated with values having higher bit depths by varying the colors displayed between consecutive frames. In order to effectively display an effective color between two real colors capable of being reproduced by the pixel, a color value at a first bit depth that is lower than an intermediate color value at a second bit depth is displayed during a first frame period, where the second bit depth is greater than the first bit depth. Then, a color value at the first bit depth that is higher than the intermediate color value at the second bit depth is displayed during a second frame period. If the refresh rate of the display device is fast enough, then the viewer perceives an effective color having a level that approximates the intermediate color value rather than the actual displayed colors associated with the lower color value and the higher color value. However, when the refresh rate falls too low, then the viewer may begin to perceive two distinct colors being produced by the pixel rather than perceiving the effective color corresponding to the intermediate color value (i.e., the viewer perceives the color associated with the lower value and then the color associated with the higher value instead of a single mid-range color). This may result in a shimmering effect being perceived by a viewer. Thus, there is a need for addressing these issues and/or other issues associated with the prior art.